Vyhledavani podle casti retezce

Otázka od: Lada

25. 7. 2004 17:29

Zdravim vsechny,

mam opet jeden zacatecnickej...

poradi nekdo prosim, proc mne nefunguje toto...?

  IBQuery1.SQL.Clear;
  IBQuery1.SQL.Add('SELECT * from tabulka');
  IBQuery1.SQL.Add('WHERE UPPER(Prijmeni) LIKE ''%UPPER(ko)%'' ');
  IBQuery1.Active := true;

takto dostanu prazdny vysledek. Predpokladam chybu nekde v uvozovkach,
ale uz jsem vyzkousel ledacos..

Jeste bych se rad zeptal: Jak by se v takovemto dotazu dala zadat cast
retezce, podle ktere hledam parametrem?

Dik moc za pripadnou odpoved,

Lada


Odpovedá: Jakub Dusek

25. 7. 2004 18:05

1)
IBQuery1.SQL.Add('WHERE UPPER(Prijmeni) LIKE ''%'' + UPPER(ko) + ''%'' ');
zalezi na databazi, muze to byt i:
IBQuery1.SQL.Add('WHERE UPPER(Prijmeni) LIKE ''%'' || UPPER(ko) || ''%'' ');

2)
IBQuery1.SQL.Add('WHERE UPPER(Prijmeni) LIKE :param1');
IBQuery1.ParamByName('param1').AsString := '%text%'

Jakub Dusek
----------------------------------------------------------------------
web: http://www.corexpert.com, mobile: +420 604 615 795, ICQ: 86063232
odesilani smsek, vizitek, log a melodii, snadna integrace do Vaseho IS
     => Sms GateKeeper, Sms GateKeeper Service

======================================================================
Sunday, July 25, 2004, 6:29:34 PM, you wrote:

L> Zdravim vsechny,

L> mam opet jeden zacatecnickej...

L> poradi nekdo prosim, proc mne nefunguje toto...?

L> IBQuery1.SQL.Clear;
L> IBQuery1.SQL.Add('SELECT * from tabulka');
L> IBQuery1.SQL.Add('WHERE UPPER(Prijmeni) LIKE ''%UPPER(ko)%'' ');
L> IBQuery1.Active := true;

L> takto dostanu prazdny vysledek. Predpokladam chybu nekde v uvozovkach,
L> ale uz jsem vyzkousel ledacos..

L> Jeste bych se rad zeptal: Jak by se v takovemto dotazu dala zadat cast
L> retezce, podle ktere hledam parametrem?

L> Dik moc za pripadnou odpoved,

L> Lada



Odpovedá: Pesek Michal

26. 7. 2004 7:39

> IBQuery1.SQL.Add('WHERE UPPER(Prijmeni) LIKE ''%UPPER(ko)%'' ');
> takto dostanu prazdny vysledek. Predpokladam chybu nekde v uvozovkach

Hi,
Chybu bych nevidel v uvozovkach, ale v tech procentech
 IBQuery1.SQL.Add('WHERE UPPER(Prijmeni) LIKE ''%UPPER(ko%)'' ');

Michal PEPR Pesek


Odpovedá: Milan Tomes

26. 7. 2004 7:23

IMHO dle prikazu, ktery tazatel napsal to hleda retezec, ktery obsahuje
podretezec 'UPPER(ko)'.
Procenta ma dobre... Jen je nutne to udelat trochu jinak -

IBQuery1.SQL.Add('WHERE UPPER(Prijmeni) LIKE UPPER(''%ko%'')');

HTH

Milan Tomes

> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of Pesek Michal
> Sent: Monday, July 26, 2004 8:03 AM
>
> > IBQuery1.SQL.Add('WHERE UPPER(Prijmeni) LIKE ''%UPPER(ko)%'' ');
> > takto dostanu prazdny vysledek. Predpokladam chybu nekde v uvozovkach
>
> Hi,
> Chybu bych nevidel v uvozovkach, ale v tech procentech
> IBQuery1.SQL.Add('WHERE UPPER(Prijmeni) LIKE ''%UPPER(ko%)'' ');
>
> Michal PEPR Pesek